using MediatR;
using RBAC.ErrorCode;
using RBAC.Read.Api.Application.Dto.ERP.SalesManagement.H;
using System;
using System.Collections.Generic;

namespace RBAC.Read.Api.Application.Command.ERP.SalesManagement.H
{
    /// <summary>
    /// 发货通知单所有数据（联查 Delivery_notice、SalesOrder、Delivery_notice_item、SalesOrderDetail、Mater、MaterType）
    /// 支持无条件与条件查询
    /// </summary>
    public class GetDeliveryNoticeAllDataCommand : IRequest<APIResult<List<DeliveryNoticeAllDataDto>>>
    {
        /// <summary>
        /// 销售订单号（模糊）
        /// </summary>
        public string? SalesOrderCode { get; set; }

        /// <summary>
        /// 单据编码（模糊）
        /// </summary>
        public string? BillCode { get; set; }

        /// <summary>
        /// 客户名称（模糊）
        /// </summary>
        public string? CustomerName { get; set; }

        /// <summary>
        /// 销售员（模糊）
        /// </summary>
        public string? SalesmanName { get; set; }

        /// <summary>
        /// 物料名称（模糊）
        /// </summary>
        public string? MaterialName { get; set; }

        /// <summary>
        /// 单据状态（0=开立，1=审核，2=退回），可选
        /// </summary>
        public int? Status { get; set; }

        /// <summary>
        /// 业务类型，可选
        /// </summary>
        public string? BizType { get; set; }

        /// <summary>
        /// 开始日期（按 dn.Bill_date）
        /// </summary>
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// 结束日期（按 dn.Bill_date）
        /// </summary>
        public DateTime? EndDate { get; set; }
    }
}
